﻿using System;
using System.Collections.Generic;

namespace TradeMeSDK
{
    public class Properties
    {
        public int TotalCount { get; set; }
        public int Page { get; set; }
        public int PageSize { get; set; }
        public List<Property> List { get; set; }
        public string DidYouMean { get; set; }
        public List<FoundCategory> FoundCategories { get; set; }
    }

    public class Property
    {
        public int ListingId { get; set; }
        public string Title { get; set; }
        public string Category { get; set; }
        public decimal StartPrice { get; set; }
        public decimal BuyNowPrice { get; set; }
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        // ListingLength
        // Restrictions
        public bool IsFeatured { get; set; }
        public bool HasGallery { get; set; }
        public bool IsBold { get; set; }
        public bool IsHighlighted { get; set; }
        public bool HasHomePageFeature { get; set; }
        public bool HasExtraPhotos { get; set; }
        public bool HasScheduledEndDate { get; set; }
        public int BidderAndWatchers { get; set; }
        public decimal MaxBidAmount { get; set; }
        public DateTime AsAt { get; set; }
        public string CategoryPath { get; set; }
        public string PictureHref { get; set; }
        public int PhotoId { get; set; }
        //Seller
        public bool HasPayNow { get; set; }
        public bool IsNew { get; set; }
        public int RegionId { get; set; }
        public string Region { get; set; }
        public int SuburbId { get; set; }
        public string Suburb { get; set; }
        public int BidCount { get; set; }
        public int ViewCount { get; set; }
        public bool IsReserveMet { get; set; }
        public bool HasReserve { get; set; }
        public bool HasBuyNow { get; set; }
        public DateTime NoteDate { get; set; }
        // CategoryName
        public string ReserveState { get; set; }
        public List<Attribute> Attributes  { get; set; }
        public bool IsClassified { get; set; }
        public bool IsOnWatchList { get; set; }
        public string Address { get; set; }
        public string District { get; set; }
        public string AgencyReference { get; set; }
        public string Amenities { get; set; }
        public int Area { get; set; }
        public int LandArea { get; set; }
        public string AvailableFrom { get; set; }
        public int Bathrooms { get; set; }
        public int Bedrooms { get; set; }
        public string BestContactTime { get; set; }
        //Details
        public string IdealTenant  { get; set; }
        public string Keywords { get; set; }
        public string ListingGroup { get; set; }
        public int MaxTenants { get; set; }
        public string Parking { get; set; }
        public string ParkingOrGaraging { get; set; }
        public bool Pets { get; set; }
        public string PropertyType { get; set; }
        public int RateableValue { get; set; }
        public decimal RentPerWeek { get; set; }
        public bool Smokers { get; set; }
        public string ViewingInstructions  { get; set; }
        public string Whiteware { get; set; }
        public string PropertyId { get; set; }

        public List<string> AdjacentSuburbNames { get; set; }
        public List<int> AdjacentSuburbIds { get; set; }
        public int DistrictId { get; set; }
        public string PriceDisplay { get; set; }
        public Agent Agent { get; set; }
    }


    public class Flatmates
    {
        public int TotalCount { get; set; }
        public int Page { get; set; }
        public int PageSize { get; set; }
        public List<Flatmate> List { get; set; }
        public string DidYouMean { get; set; }
        public List<FoundCategory> FoundCategories { get; set; }
    }

    public class Flatmate : Property
    {
        public int Flatmates { get; set; }
        public string CurrentFlatmates { get; set; }
    }
}
